Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(neo4j): update neo4j chart #365

Merged
merged 4 commits into from
Oct 4, 2023

Conversation

gschuurman
Copy link
Contributor

Update neo4j to the latest chart version supplied by the neo4j organisation. The new chart offers build in support for enterprise and comunity deployments. This also improves security by exposing the podSecurityContext and containerSecurityContext to the user.

BREAKING CHANGE:

Removal of neo4j-comunity chart and values
Change neo4j parameters are now under neo4j.neo4j
Rename neo4jPassword to password
Rename existingPasswordSecret to passwordFromSecret Change passwordFromSecret expects: neo4j-password and NEO4J_AUTH keys Require PersistentVolume from values

Closes: #364

Checklist

  • The PR conforms to DataHub's Contributing Guideline (particularly Commit Message Format)
  • Links to related issues (if applicable)
  • Tests for the changes have been added/updated (if applicable)
  • Docs related to the changes have been added/updated (if applicable)

Glenn Schuurman and others added 3 commits September 11, 2023 15:10
Update neo4j to the latest chart version supplied by the neo4j
organisation. The new chart offers build in support for enterprise and
comunity deployments. This also improves security by exposing the
podSecurityContext and containerSecurityContext to the user.

BREAKING CHANGE:

Removal of neo4j-comunity chart and values
Change neo4j parameters are now under neo4j.neo4j
Rename neo4jPassword to password
Rename existingPasswordSecret to passwordFromSecret
Change passwordFromSecret expects: neo4j-password and NEO4J_AUTH keys
Require PersistentVolume from values

Closes: acryldata#364
@david-leifker
Copy link
Contributor

Thanks!

@david-leifker david-leifker merged commit 68400a9 into acryldata:master Oct 4, 2023
1 check passed
@lix-mms
Copy link
Contributor

lix-mms commented Oct 6, 2023

Hi @gschuurman. It is exciting to see we are trying to use the new and better Neo4j chart! But since the PR introduces Neo4j 5.x, have you tested if it works well compatibly with the current DataHub (which has been using Neo4j 4.x)?

@gschuurman
Copy link
Contributor Author

@lix-mms I've tested the entire datahub application, and have been running it in production for a couple of weeks. Didn't experience any issues. I also cross validated the used clients in the datahub application. Fortunatly they use a LTS version, which supports multiple versions, including version Neo4J 4.x and 5.x..

@lix-mms
Copy link
Contributor

lix-mms commented Oct 6, 2023

@gschuurman Thanks for the reply! Great to hear that!

Btw, when you use this new Helm chart to deploy the prerequisites, have you experienced that the stateful set for the community and the enterprise are both created, even when we set the edition to "community" in the values?

(Following pic shows that after my helm install run, both the community pod and the enterprise pods (core+replica) are appearing)
image

@gschuurman
Copy link
Contributor Author

@lix-mms Well, that's one of the reasons I marked it as a breaking change. I would have thought that would also enter into the release notes.
It seems to me that you're still deploying the old version of the pre-requisites chart, please do a helm repo update
This will fetch all the latest charts from the internet, and then do a helm list to see which chart versions are installed. In my case it's the following:

NAME            NAMESPACE       REVISION        UPDATED                                 STATUS          CHART                           APP VERSION
datahub         datahub         5               2023-10-05 07:30:12.116833895 +0000 UTC deployed        datahub-0.3.1                   0.11.0
prerequisites   datahub         10              2023-10-05 07:30:03.905324593 +0000 UTC deployed        datahub-prerequisites-0.1.1

Also please make sure that you update your values file to represent the current state.

It might also be possible that the old objects are still existing.
I have the following statefull sets in the selected namespace:

elasticsearch-master      1/1     23d   elasticsearch   docker.elastic.co/elasticsearch/elasticsearch:7.17.3
prerequisites-kafka       1/1     23d   kafka           docker.io/bitnami/kafka:3.4.0-debian-11-r33
prerequisites-mysql       1/1     23d   mysql           docker.io/bitnami/mysql:8.0.29-debian-11-r3
prerequisites-neo4j       1/1     23d   neo4j           neo4j:5.11.0
prerequisites-zookeeper   1/1     23d   zookeeper       docker.io/bitnami/zookeeper:3.8.1-debian-11-r31

As a last piece of advice, deploy your datahub in a separate namespace, this helps to keep your kubernetes cluster more isolated since connections between namespaces are normally not allowed by default. You can do so by specifying the namespace in the helm command using --namespace {namespace_name} --create-namespace

@lix-mms
Copy link
Contributor

lix-mms commented Oct 6, 2023

@gschuurman You are completely right! I installed from the datahub-helm repo directly and didn't realise that I needed to rebuild the dependency from here too. After the rebuild, the installation could continue.

Although when providing custom secret for the password, I was asked by Helm to ensure the NEO4J_AUTH exists in the secret and starts with "neo4j" with the following message:

Error: UPGRADE FAILED: execution error at (datahub-prerequisites/charts/neo4j/templates/_helpers.tpl:351:19): Password in secret neo4j-secrets-new must start with the characters 'neo4j/'

which was not quite intuitive since I expected we might be able to determine for our own root user name. But it is not a show stopper anyway. After the corresponding adjustment, the installation was finally successful with just one community pod.

Thank you very much for all the tips! 🙏

@lix-mms
Copy link
Contributor

lix-mms commented Oct 6, 2023

Btw the document line mentioning the NEO4J_AUTH entry could say that it is expected to be in the secret data rather than in the values yaml so it is a bit more clear to understand. But that's for sure a minor thing. 🙂

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Datahub-prerequisites: neo4j-comunity chart out-dated and unmaintained
3 participants